home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / Projects / Examples / More Examples / Using frequency tunings < prev    next >
Text File  |  1998-10-26  |  3KB  |  88 lines

  1. ; How to play frequencies (200hz 330 hz 800hz 960hz 2000hz)? 
  2.  
  3. Tuning scales are defined by standard way by ratios that describe the frequency
  4. relations.
  5.  
  6. (create-tonality freq-tuning '(1/1 30/29 15/14 10/9 4/3 3/2 45/29 45/28 5/3))
  7.  
  8. To apply this to arbitrary frequencies you can write them as ratios so that
  9. each frequency is devided by the first frequency in the series. This creates
  10. a relational tuning scale and then plays it starting from g# 3. NOTE: you
  11. must set up the starting position so that it reflecting your synthesizer 
  12. master tuning. You must also know how many steps between a semitone your
  13. synthesizer can reproduce, here a value 4024 steps is used.
  14.  
  15. (create-tonality freq-tuning '(200/200 330/200 800/200 960/200 2000/200))
  16.  
  17. (def-section sect-a
  18.    default
  19.       zone '(2/1)
  20.       tonality (activate-tonality (freq-tuning g# 3 4024))
  21.       length '(1/8)
  22.       velocity '(64)
  23.    piano
  24.       symbol '(a b c d e)
  25. )
  26.  
  27. (def-tempo 120)
  28.  
  29. (midiport :printer)
  30.  
  31. (play-file-p "tunings"
  32.    piano '(sect-a)
  33. )
  34.  
  35.  
  36. If you do not know how your synth reproduces tunings the easiest way
  37. is to use approximations within the 12-tone scale. In the following you
  38. define the frequencies with frequency-map. You must also define here the
  39. starting point of the note that this frequency series is realized, here
  40. (g# 3).
  41.  
  42. (def-section sect-a
  43.    default
  44.       zone '(2/1)
  45.       tonality (activate-tonality (frequency-map '(200/200 330/200 800/200 960/200 2000/200) 1 '(g# 3)))
  46.       length '(1/8)
  47.       velocity '(64)
  48.    piano
  49.       symbol '(a b c d e)
  50. )
  51.  
  52. (def-tempo 120)
  53.  
  54. (midiport :printer)
  55.  
  56. (play-file-p "tunings"
  57.    piano '(sect-a)
  58. )
  59.  
  60. What comes to realizing the frequencies exactly starting from 200 hz ... I would
  61. say it is a bit difficult to achieve in MIDI because it is not designed to 
  62. operate on that precision.
  63.  
  64. I remember that low e on electric bass guitar produces about 40 hz tone. You
  65. can tweak the equation by adjusting the number in the times operation below.
  66. The frequencies are based on c 0 which produces 1 hz.
  67.  
  68. (* 16 (note-to-freq 'e 1))
  69. --> 40.31747359663594
  70.  
  71. If the above value is ok then g# 3 will produce the most near value to 200
  72. hz. In any case you'll never get exact frequencies in MIDI, but the results
  73. always reflect the frequency relations - which is more important since 
  74. the hearing mechanism perceives relations.
  75.  
  76. (* 16 (note-to-freq 'g# 3))
  77. --> 203.18733465192952
  78.  
  79. There is also a pair, freq-to-note.
  80.  
  81. (freq-to-note 200)
  82. --> (g# 7)
  83.  
  84. Note that freq-to-note is based so that (freq-to-note 1) produces (c 0).
  85.  
  86.  
  87.  
  88.